﻿using System.Collections.Generic;

namespace BattleforgeAssault
{
    public class Action : Effect
    {
        // This should be filled in by the DeclareTargets method
        private List<GameObject> _targets = new List<GameObject>();
        public List<GameObject> Targets { get { return _targets; } set { _targets = value; RaisePropertyChanged("Targets"); } }

        /// <summary>
        /// Force the players to declare the targets for this action. This should also fill the Targets list property.
        /// </summary>
        /// <returns>True if valid targets are available.</returns>
        public virtual bool DeclareTargets()
        {
            return true;
        }

        /// <summary>
        /// Pay the costs for this action including resource cost of tactics or sacrifices, etc.
        /// </summary>
        /// <returns>True if all costs were paid.</returns>
        public virtual bool PayCosts()
        {
            return true;
        }
    } // Class
} // Namespace
